﻿using System;
using System.Collections.Generic;
using System.ComponentModel;

namespace dk.Helper.Base
{
    public interface IAttacksPlanner
    {
        /// <summary>
        /// Gets the attacks.
        /// </summary>
        BindingList<IAttack> Attacks { get; }

        /// <summary>
        /// Creates the attacks with shortest average duration times.
        /// </summary>
        /// <param name="fromVillages">From.</param>
        /// <param name="toVillages">To.</param>
        void CreateAttacks(IList<IVillage> fromVillages, IList<IVillage> toVillages);

        /// <summary>
        /// Creates the attacks.
        /// </summary>
        /// <param name="from">From.</param>
        /// <param name="to">To.</param>
        void CreateAttacks(IPlayer from, IPlayer to);

        /// <summary>
        /// Occurs when Attacks are changed.
        /// </summary>
        event EventHandler AttacksChanged;

        /// <summary>
        /// Removes the attack.
        /// </summary>
        /// <param name="attack">The attack.</param>
        void RemoveAttack(IAttack attack);
    }
}